In [1]:
%reload_ext autotime
import pandas as pd
import plotly.express as px
import numpy as np
from scipy.optimize import curve_fit
df = pd.read_csv("Data_for_Generating_AI/LabData.csv",sep=";").ffill()
df
✔️ 876 ms (2024-11-13T17:08:51/2024-11-13T17:08:52)
Out[1]:
Dataset Experiment SLR Hs*Omega WR
0 Atkinson (smallest scale) A1 0.050 0.0417 -0.13760
1 Atkinson (smallest scale) A2 0.035 0.0616 0.13600
2 Atkinson (smallest scale) A3 0.035 0.0616 0.05220
3 Atkinson (smallest scale) E1 0.065 0.3523 0.29160
4 Atkinson (smallest scale) E2 0.065 0.3250 0.50245
5 Atkinson (smallest scale) E3 0.065 0.3250 0.48090
6 Atkinson (smallest scale) E4 -0.065 0.3250 -0.02170
7 Atkinson (smallest scale) E5 0.050 0.5424 0.40295
8 Atkinson (smallest scale) E6 0.065 0.3523 0.41485
9 Beuzen (slightly larger scale) E11 0.015 0.4500 0.12420
10 Beuzen (slightly larger scale) E12 0.015 0.4500 0.08560
11 Beuzen (slightly larger scale) E13 0.015 0.4500 0.12640
12 Beuzen (slightly larger scale) E14 0.015 0.4500 0.07170
13 Beuzen (slightly larger scale) E15 0.015 0.4500 0.16690
14 Beuzen (slightly larger scale) E2 0.075 0.4500 0.64690
15 Bayle (large scale) E1 0.100 2.7040 1.06050
16 Bayle (large scale) E2 0.100 2.7040 0.95010
17 Bayle (large scale) E3 0.100 2.7040 0.90010
18 Bayle (large scale) E4 0.100 2.7040 1.67000
In [2]:
x = df.SLR
y = df['Hs*Omega']
z = df.WR
px.scatter_3d(df, "SLR", "Hs*Omega", "WR", color="Dataset")
✔️ 626 ms (2024-11-13T17:08:52/2024-11-13T17:08:53)
In [3]:
def func(xy, a, b, c, d, e, f): 
    x, y = xy 
    return a + b*x + c*y + d*x**2 + e*y**2 + f*x*y
popt, pcov = curve_fit(func, (x, y), z) 
X, Y = np.meshgrid(np.linspace(x.min(), x.max(), 10), np.linspace(y.min(), y.max(), 10))
Z = func((X, Y), *popt) 
✔️ 4.84 ms (2024-11-13T17:08:53/2024-11-13T17:08:53)
In [4]:
dfs = []
for i in range(len(X)):
  dfs.append(pd.DataFrame({"SLR": X[i], "Hs*Omega": Y[i], "WR": Z[i], "Dataset":"generated"}))
gen_df = pd.concat(dfs)
gen_df = gen_df[gen_df["WR"] > 0]
px.scatter_3d(pd.concat((df, gen_df)), x="SLR", y="Hs*Omega", z="WR", color="Dataset", opacity=.5)
✔️ 43.1 ms (2024-11-13T17:08:53/2024-11-13T17:08:53)
In [5]:
gen_df.to_csv("generated.csv", index=False)
✔️ 5.26 ms (2024-11-13T17:08:53/2024-11-13T17:08:53)